package org.asiainfo.flowable.service;

import cn.hutool.core.lang.Dict;
import org.asiainfo.flowable.domain.bo.WfTaskBo;

/**
 * 流程实例管理Service接口
 *
 * @author dotor-ww
 */
public interface WfInstanceService {

    /**
     * 激活/挂起流程实例
     *
     * @param instanceId   流程实例ID
     * @param suspendState 1-激活，2-挂起
     */
    void updateState(String instanceId, Integer suspendState);

    /**
     * 终止流程实例
     *
     * @param wfTaskBo 流程任务业务对象
     */
    void stopProcessInstance(WfTaskBo wfTaskBo);

    /**
     * 删除流程实例
     *
     * @param instanceId 流程实例ID
     * @param reason     删除原因
     */
    void deleteProcessInstance(String instanceId, String reason);

    /**
     * 流程实例详情
     *
     * @param procInsId 流程实例ID
     * @param deployId  流程部署ID
     * @return 流程实例详情
     */
    Dict queryProcessDetail(String procInsId, String deployId);
}
